Conventional video editing systems (VES) compose video from a number of different media types, such as video objects, text objects, and image objects. VES's have a separate rendering subsystem for each of the media types, that renders the object and then passes the object to a composition engine. The composition engine combines video objects, text objects and image objects into a combined image. After the composition engine combines all of the objects, it renders the combined image back to the composition space, a file, or a device. Because each of the components of the VES, such as the rendering subsystems, composition engine and composition space, are developed as separate pieces, the system is inherently closed, making it difficult to add, extend, or enhance the features, functions and/or the capabilities of the video editing system. More specifically, it is difficult to add a chart, texture, or some not-yet-thought-of control to a video.
Furthermore, each rendering subsystem supports an effects engine to change the look of an object at a specified or predetermined point in time. For example, an effect can be added to a piece of text to fade or scroll away when the life span of the text expires.
The composition space and the composition engine require position information and timing information for each object. Timing information specifies an amount of time that an object is displayed. The VES must also be able to save or embed this information so that the information can be edited at a future point in time.
Furthermore, there are no standards for the layout and position of objects in a video. The systems are closed, so all of the layout must be done within the tool itself. The layout cannot be machine generated or automated (or localized, version controlled, etc.).
In addition, each rendering subsystem supports an effects engine, the functionality of which is duplicated in browsers. This is problematic because the duplication of functionality requires additional disk space to store the software component, slows performance of the application, and adds complexity to the development of the software components that could reduce the quality of the software components.
Lastly, conventional VES's are installed and executed locally on computers. Installing, deploying and maintaining VES's locally on computers is expensive because the installation, version control, and multiple system configurations are managed on numerous physically separate machines.